package com.shell.governor.user.service;

import com.shell.bee.entity.mvc.RetMsg;
import com.shell.bee.persistence.model.PageLimit;
import com.shell.bee.persistence.service.PersistentService;
import com.shell.dto.UserAndOrganDto;
import com.shell.governor.user.po.PubUser;
import com.shell.governor.user.po.PubUserOpt;
import com.shell.governor.user.po.PubUserOrgan;
import com.shell.governor.user.vo.PubUserVo;
import com.shell.governor.user.vo.UserQueryVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public abstract interface PubUserService extends PersistentService<PubUser> {
	public abstract int saveUser(PubUserVo paramPubUserVo);

	public abstract int updateUser(PubUserVo paramPubUserVo);

	public abstract boolean checkCodeUnique(PubUser paramPubUser);

	public abstract RetMsg deleteUser(PubUser paramPubUser, String paramString);

	public abstract int updateState(String paramString1, String paramString2, String paramString3);

	public abstract List<PubUserVo> selectUsersByPage(PageLimit paramPageLimit, PubUserVo paramPubUserVo);

	public abstract PubUserVo selectUser(String paramString);

	public abstract RetMsg resetUserPassword(String paramString);

	public abstract int modifyUserPassword(String paramString1, String paramString2, String paramString3);

	public abstract RetMsg modifyPasswordByLoginNameOrPhoneNo(String paramString1, String paramString2,
			String paramString3, String paramString4);

	public abstract PubUserVo findUserByLoginName(String paramString);

	public abstract List<PubUser> selectUsersByRoleCodes(String paramString, String... paramVarArgs);

	public abstract List<PubUser> selectUsersByUserNames(String... paramVarArgs);

	public abstract Boolean existUserWithRole(String paramString1, String paramString2);

	public abstract String sendVerificationCode(String paramString1, String paramString2);

	public abstract RetMsg changePhone(PubUser paramPubUser, String paramString1, String paramString2);

	public abstract boolean checkPhoneNoUnique(String paramString1, String paramString2, String paramString3);

	public abstract List<PubUser> selectUserByRoleId(String paramString);

	public abstract List<PubUserOrgan> selectUserByOrganId(List<Object> paramList, String paramString);

	public abstract List<PubUserVo> selectUserVoByCode(String paramString1, String paramString2);

	public abstract List<PubUserVo> selectEntUsersByPage(PageLimit paramPageLimit, PubUserVo paramPubUserVo);

	public abstract List<PubUserVo> selectUserVoByOrgan(String paramString);

	public abstract List<String> selectByResCodeAndOrgId(String paramString, String... paramVarArgs);

	public abstract int updateLoginName(PubUserVo paramPubUserVo);

	public abstract int updateUsersStateByCreatorId(@Param("creatorId") String paramString1,
			@Param("userState") String paramString2);

	public abstract int batchSaveUserOrgan(List<PubUserOrgan> paramList);

	public abstract List<PubUserVo> selectUserByRoleCodeAndEntId(String paramString1, String paramString2);

	public abstract void saveOrUpdateUserAndOrgan(UserAndOrganDto paramUserAndOrganDto);

	public abstract List<PubUserVo> queryUser(UserQueryVo paramUserQueryVo);

	public abstract List<PubUserVo> selectAllUserForEnt(String paramString);

	public abstract boolean addUserForEnt(PubUserVo paramPubUserVo);

	public abstract void updateUserForEnt(PubUserVo paramPubUserVo);

	public abstract List<PubUserVo> selectUserForApr(PageLimit paramPageLimit, UserQueryVo paramUserQueryVo);

	public abstract void firstTrialPass(PubUserOpt paramPubUserOpt);

	public abstract void firstTrialReject(PubUserOpt paramPubUserOpt);

	public abstract void lastTrialPass(PubUserOpt paramPubUserOpt);

	public abstract void lastTrialReject(PubUserOpt paramPubUserOpt);

	public abstract int uploadUserInfo(PubUser paramPubUser, String paramString);

	public abstract String sendSMS(String paramString);

	public abstract boolean hasDefaultUser(String paramString);

	public abstract void cleanDefaultUser(String paramString);

	public abstract void setDefault(String paramString1, String paramString2);

	public abstract void updatePasswordExcludeAdmin(String paramString);

	public abstract PubUser selectUserByPhone(String paramString);

	public abstract PubUser selectUserByIdCard(String paramString);
}
